home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / reader_requests / alienbreed3d2 / cheesesauce / serial.inc < prev    next >
Text File  |  1997-11-28  |  1KB  |  77 lines

  1. ;sends the lower byte of d1 accross serial port
  2. ;corrupts bit 8 of d1
  3. SERSEND:
  4.     btst.b    #5,SERDATR(a6)
  5.     beq.s    SERSEND        ;wait until last byte sent
  6.     and.w    #$00FF,d1
  7.     bset.l    #8,d1        ;add stop bit
  8.     move.w    d1,SERDAT(a6)
  9.     rts
  10.     
  11. ;waits for serial data and returns it in 
  12. ;lower byte of d1
  13. SERREC:
  14.     btst.b    #6,SERDATR(a6)
  15.     beq.s    SERREC
  16.     move.w    SERDATR(a6),d1
  17.     move.w    #$0800,INTREQ(a6)
  18.     and.w    #$00ff,d1
  19.     rts
  20.     
  21. ;sends and receives an interleaved long word
  22. ;from d0 into d0 (sends first)
  23. SENDFIRST:
  24.     move.b    d0,d1
  25.     bsr.s    SERSEND
  26.     bsr.s    SERREC
  27.     move.b    d1,d2
  28.     ror.l    #8,d2
  29.     lsr.w    #8,d0
  30.     move.b    d0,d1
  31.     bsr.s    SERSEND
  32.     bsr.s    SERREC
  33.     move.b    d1,d2
  34.     ror.l    #8,d2
  35.     swap    d0
  36.     move.b    d0,d1
  37.     bsr.s    SERSEND
  38.     bsr.s    SERREC
  39.     move.b    d1,d2
  40.     ror.l    #8,d2
  41.     lsr.w    #8,d0
  42.     move.b    d0,d1
  43.     bsr.s    SERSEND
  44.     bsr.s    SERREC
  45.     move.b    d1,d2
  46.     ror.l    #8,d2
  47.     move.l    d2,d0
  48.     rts
  49.     
  50. ;sends and receives an interleaved long word
  51. ;from d0 into d0 (receives first)
  52. RECEIVEFIRST:
  53.     bsr.s    SERREC
  54.     move.b    d1,d2
  55.     move.b    d0,d1
  56.     bsr.s    SERSEND
  57.     ror.l    #8,d2
  58.     bsr.s    SERREC
  59.     move.b    d1,d2
  60.     lsr.w    #8,d0
  61.     move.b    d0,d1
  62.     bsr.s    SERSEND
  63.     ror.l    #8,d2
  64.     bsr.s    SERREC
  65.     move.b    d1,d2
  66.     swap    d0
  67.     move.b    d0,d1
  68.     bsr.s    SERSEND
  69.     ror.l    #8,d2
  70.     bsr.s    SERREC
  71.     move.b    d1,d2
  72.     lsr.w    #8,d0
  73.     move.b    d0,d1
  74.     bsr    SERSEND
  75.     ror.l    #8,d2
  76.     move.l    d2,d0
  77.     rts